package Presenter;

import java.util.ArrayList;

import org.json.JSONException;
import org.json.JSONObject;

import Models.KegReport;

public class KegReportPresenter extends AbstractPresenter<KegReport> {
	final String SINGLEITEM = "kegReport";
	final String MULTIITEM = "kegReports";
	
	public ArrayList<KegReport> tryJSONParseArray(String input){
		return super.doJSONParseArray(input, SINGLEITEM, MULTIITEM);
	}
	
	public KegReport tryJSONParse(String input){
		return super.doJSONParse(input, SINGLEITEM);
	}
	
	public KegReport createItemFromJSONObject(JSONObject jsonObject){
		KegReport item = new KegReport();
		try{
			item.setBeerName(jsonObject.getString("beerName"));
			item.setCustName(jsonObject.getString("custName"));
			item.setDays(jsonObject.getInt("days"));
			item.setKegID(jsonObject.getInt("kegID"));
			item.setKegLost(jsonObject.getBoolean("kegLost"));
			item.setKegOOC(jsonObject.getBoolean("kegOOC"));
			item.setPackageName(jsonObject.getString("packageName"));
			
			if(!jsonObject.isNull("kegSoldDate")){
				item.setKegSoldDate(timeFormat.parse(jsonObject.getString("kegSoldDate")));
			} else {
				item.setKegSoldDate(null);
			}	
			
			return item;
		} catch(JSONException ex){
			ex.printStackTrace();
		} catch(Exception ex){
			ex.printStackTrace();
		}
		return null;
	}
	
	public JSONObject createJSON(KegReport item){
		try{
			JSONObject json = new JSONObject();
			
			json.put("beerName", item.getBeerName());
			json.put("custName", item.getCustName());
			json.put("days", item.getDays());
			json.put("kegID", item.getKegID());
			json.put("kegLost", item.isKegLost());
			json.put("kegOOC", item.isKegOOC());
			json.put("packageName", item.getPackageName());
			
			if(item.getKegSoldDate()!=null){
				json.put("kegSoldDate", getDate(item.getKegSoldDate()));
			} else {
				json.put("kegSoldDate", JSONObject.NULL);
			}
			
			return json;
		} catch(JSONException ex){
			ex.printStackTrace();
		}
		return null;
	}
	
	public KegReport getEmptyEntity(){
		KegReport entity = new KegReport();
		return entity;
	}
}
